iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0
Software Development

我的SpringBoot絕學:7+2個專案,從新手變專家系列 第 3

Day3 第二個專案:待辦事項清單(1)概念篇

  • 分享至 

  • xImage
  •  

接下來,我們將深入探索Spring Boot。
大部分的Spring Boot專案都和RESTful API相關,可以說學會完成一個RESTful API專案,那麽就學會完成許多的Spring Boot專案。

我們的RESTful API專案是做一個Todo List,中文是待辦事項清單,大家可以思考這個專案應該具備哪些功能,以下是我的設計思路,提供給大家參考。

設計思路

這個專案的核心部分就是待辦事項(todo),我們要如何設計這個待辦事項呢?

Todo

Todo應該要包含

  • 方便資料庫搜尋用的id
  • 用來寫要做的事的title
  • 用來表示是否完成的completed

專案功能

接下來開始規劃功能的部分

  • 新增todo

待辦事項清單一定會有這個功能,todo的內容透過JSON傳送,我們不選擇透過網址,因為URL的上限是1024字母,超過的部分會消失,當title很長時就會有一部分的內容消失,假設我的title是研究肌聯蛋白(全名由189819個字母組成),我們的內容就會被截斷。如果使用JSON傳送則是不會發生內容被切斷。

功能的路徑設定為/

  • 查看資料庫內的todo

我們新增todo後,就會想要看是否有儲存到資料庫中,所以有這個功能很重要。

功能的路徑設定為/all

  • 查看指定id的todo

有時候我們不需要全部的todo,只需要一個todo就好,透過URL傳送id,id不可能超過1024字母。

功能的路徑設定為/{id}

  • 刪除指定id的todo

有新增的功能,那麽應該也會有刪除的功能,刪除時需要指定id,避免不小心把todo全刪了,透過URL傳送id。

功能的路徑設定為/{id}

  • 修改指定id的todo

新增時有時會打錯字,需要有修改的功能,todo的內容透過JSON傳送。

功能的路徑設定為/{id}

  • 將todo標記完成

待辦事項完成了,需要有標記完成的功能,透過URL傳送id。

功能的路徑設定為/{id}/completed

  • 將todo標記未完成

有標記完成的功能,也需要標記未完成,透過URL傳送id。

功能的路徑設定為/{id}/uncompleted

好的開始是成功的一半,我們的專案已經完成50%了,只剩實作的部分。

有些人可能會懷疑,這些內容和專案有什麼關係,在下一段會將思路轉換成表格,幫助大家理解。

Entity 格式與專案功能

todo entity的格式

欄位名稱 資料型態 說明
id Long 唯一的id,方便資料庫搜尋
title String 用來寫要做的事
completed Boolean 表示是否完成

專案的功能

路徑 HTTP request method 說明 Request body
/ POST 新增todo Todo
/all GET 查看資料庫內的todo
/{id} GET 查看指定id的todo
/{id} DELETE 刪除指定id的todo
/{id} PUT 修改指定id的todo Todo
/{id}/completed PATCH 將todo標記完成
/{id}/uncompleted PATCH 將todo標記未完成

Request body用來夾帶Todo,將Todo內容傳輸給專案。

RESTful API的核心

有些人可能認為路徑重複了,但是它們的HTTP request method不同,因此導向不同的地方。

RESTful API的核心價值在於根據HTTP request method和URL區分目的地,導向不同的結果。

舉個例子,捷運的垃圾桶通常有兩個洞,資源回收和一般垃圾,它們是同一個大桶子(URL),但是入口(HTTP request method)不同,最終垃圾分類成資源回收或一般垃圾(查看指定id、刪除指定id、修改指定id)。


上一篇
Day2 第一個專案:Hello World
下一篇
Day4 第二個專案:待辦事項清單(2)連接資料庫
系列文
我的SpringBoot絕學:7+2個專案,從新手變專家31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言